import axios from 'axios'

// if (process.env.NODE_ENV == 'development') { //测试环境请求地址
// 	axios.defaults.baseURL = 'https://www.fastmock.site/mock/6a1b72800eaad15e259964cca87a67ca/jaycr7api/'
// }
// if (process.env.NODE_ENV == 'production') { //生产环境请求地址
// 	axios.defaults.baseURL = 'https://www.fastmock.site/mock/6a1b72800eaad15e259964cca87a67ca/jaycr7api/'
// }
axios.defaults.timeout = 10000 //加载不出来10秒之后就是加载失败
axios.interceptors.request.use(
	config => {
		//请求头带上session中的token
		// config.headers.Authorization = window.sessionStorage.getItem('token')
		config.headers["ACCESS-AUTH-TOKEN"] = window.sessionStorage.getItem('token')
		return config
	}
)
// axios.interceptors.response.use(
//     response=>{
//       return response;
//     },
//     error=>{
//         if(error.response.status){
//         }
//     }
// )
// 使用promise返回axios get请求的结果
export function get(url, params) {
	return new Promise((resolve, reject) => {
		axios.get(url, {
			params: params
		}).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	})
}
// 使用promise返回axios post请求的结果
export function post(url, params) {
	return new Promise((resolve, reject) => {
		axios.post(url, params).then(res => {
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	})
}
// 使用promise返回axios post请求excel文件
export function postFile(url, params) {
	return new Promise((resolve, reject) => {
		axios({
			method: 'post', //设置请求方式
			url: url, //设置请求地址
			data: params,
			responseType: 'blob' // 设置相应数据的类型，设置后后台返回的数据会被强制转为blob类型；如果后台返回代表失败的data，前端也无法得知，依然会下载得到名为undefined的文件
		}).then(res => {
			//直接下载文件
			// 得到请求到的数据后，对数据进行处理
			let blob = new Blob([res.data], {
				type: 'application/vnd.ms-excel;charset=utf-8',
			})
			// console.log(res)
			// 设置文件名称,decodeURI：可以对后端使用encodeURI() 函数编码过的 URI 进行解码。encodeURI() 是后端为了解决中文乱码问题
			let fileName = decodeURI(res.headers['content-disposition'])
			// console.log(fileName)
			if (fileName) { // 根据后端返回的数据处理文件名称
				fileName = fileName.substring(fileName.indexOf('=') + 1);
			} else {
				fileName = 'test.xls'
			}
			// console.log(fileName)
			const elink = document.createElement('a') // 创建一个a标签
			elink.download = fileName; // 设置a标签的下载属性
			elink.style.display = 'none'; // 将a标签设置为隐藏
			elink.href = URL.createObjectURL(blob); // 把之前处理好的地址赋给a标签的href
			document.body.appendChild(elink); // 将a标签添加到body中
			elink.click(); // 执行a标签的点击方法
			URL.revokeObjectURL(elink.href) // 下载完成释放URL 对象
			document.body.removeChild(elink) // 移除a标签
			resolve(res)
		}).catch(err => {
			reject(err)
		})
	})
}
